package com.pic.mgt.manager.business;

import java.util.List;
import java.util.Map;

/**
 * 業務管理在建立起來時不會自動進行同步，因此必須在業務管理建立起來後，第一件事就是必須先執行其同步化端末方法。
 * @author p10118178
 *
 */
public interface BusinessManager {
	/**
	 * 從資料庫同步最新的業務回來。
	 * @throws BusinessManagementOperationException
	 */
	public void synchronizeBusiness() throws BusinessManagementOperationException;
	
	/**
	 * 取得業務清單，此清單是位於 BusinessManager 內部中的清單，不是資料庫中的業務清單。
	 * @return 業務名稱List
	 */
	public List<BasicBusinessInfoBean> getEffectiveBasicBusinessInfoBeanList();
	
	/**
	 * @param businessName
	 * @return
	 */
	public boolean isEffectiveBusiness(String businessName);
	
	/**
	 * 取得業務的基本資訊
	 * @param businessName
	 * @return
	 */
	public BasicBusinessInfoBean getBasicBusinessInfoBean(String businessName);
	
	/**
	 * 取得 Business Manager 內的業務清單。強烈建議不要直接對此Map做存取，僅提供作為 synchronized 用途。
	 * @return
	 */
	// (送多方新增)
	public Map<String, BasicBusinessInfoBean> getBasicBusinessInfoBeanMap();
}
